/**
  ******************************************************************************
  * @file    communi_print.h
  * @author  Sherlock
  * @version V0.1
  * @date    09/5/2024
  * @brief   Communication print function.
  ******************************************************************************
  * @copy
  *
  * <h2><center>&copy; COPYRIGHT 2010 Feirui</center></h2>
  */ 



/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef  __COMMUNI_PRINT_H__
#define  __COMMUNI_PRINT_H__


#ifdef __cplusplus
 extern "C" {
#endif


/**
  * @brief  INCLUDE FILES.
  */


/**
  * @brief GLOBALS RAM definition
  */
#ifdef   COMMUNI_PRINT_GLOBAL
#define  COMMUNI_PRINT_EXT
#else
#define  COMMUNI_PRINT_EXT  extern
#endif


/*************************************************************************************************
 *                                        波形显示协议
 *************************************************************************************************/
#define CommData_GenFreqAverage              0    //发电频率，浮点数，默认范围0-100
#define CommData_LoadFreqAverage             1    //负载频率，浮点数，默认范围0-100
#define CommData_GenPhaseVoltAverage         2    //发电平均相电压，浮点数，默认范围0-460
#define CommData_LoadPhaseVoltAverage        3    //负载平均相电压，浮点数，默认范围0-460
#define CommData_GenCurrAverage              4    //发电平均电流，浮点数，默认范围0-10
#define CommData_GenActivePowerAverage       5    //发电平均有功功率，浮点数，默认范围0-10000
#define CommData_GenReactivePowerAverage     6    //发电平均无功功率，浮点数，默认范围0-10000
#define CommData_GenApparentPowerAverage     7    //发电平均视在功率，浮点数，默认范围0-10000
#define CommData_GenPowerFactorAverage       8    //发电平均功率因数，浮点数，默认范围0-1
#define CommData_PIDExciteOutput             9    //励磁PID总输出，浮点数，默认范围0-1
#define CommData_PIDExciteOutputP            10   //励磁P输出，浮点数，默认范围0-1
#define CommData_PIDExciteOutputI            11   //励磁I输出，浮点数，默认范围0-1
#define CommData_PIDExciteOutputD            12   //励磁D输出，浮点数，默认范围0-1
#define CommData_PIDStatorOutput             13   //转速PID总输出，浮点数，默认范围0-1
#define CommData_PIDStatorOutputP            14   //转速P输出，浮点数，默认范围0-1
#define CommData_PIDStatorOutputI            15   //转速I输出，浮点数，默认范围0-1
#define CommData_PIDStatorOutputD            16   //转速D输出，浮点数，默认范围0-1
#define CommData_GenActiPower    17   //发电平均有功功率（Average active power），有符号数，需要 D/10 处理，0-10000
#define CommData_GenReacPower    18   //发电平均无功功率（Average reactive power），有符号数，需要 D/10 处理，0-10000
#define CommData_GenAppaPower    19   //发电平均视在功率（Average apparent power），有符号数，需要 D/10 处理，0-10000
#define CommData_GenPF           20   //发电平均功率因数（Average power factor），有符号数，需要 D/100 处理，0-1
#define CommData_PhaseVoltU      21   //发电U相电压（Phase voltage U），无符号数，需要 D/10 处理，0-500
#define CommData_PhaseVoltV      22   //发电V相电压（Phase voltage V），无符号数，需要 D/10 处理，0-500
#define CommData_PhaseVoltW      23   //发电W相电压（Phase voltage W），无符号数，需要 D/10 处理，0-500
#define CommData_GenFreqUV       24   //发电频率UV（Line frequency UV），无符号数，需要 D/100 处理，0-100
#define CommData_GenFreqVW       25   //发电频率VW（Line frequency VW），无符号数，需要 D/100 处理，0-100
#define CommData_GenFreqWU       26   //发电频率WU（Line frequency WU），无符号数，需要 D/100 处理，0-100
#define CommData_GenActiPowerU   27   //发电U相有功功率（Phase active power U），有符号数，需要 D/10 处理，0-10000
#define CommData_GenActiPowerV   28   //发电V相有功功率（Phase active power V），有符号数，需要 D/10 处理，0-10000
#define CommData_GenActiPowerW   29   //发电W相有功功率（Phase active power W），有符号数，需要 D/10 处理，0-10000
#define CommData_GenReacPowerU   30   //发电U相无功功率（Phase reactive power U），有符号数，需要 D/10 处理，0-10000
#define CommData_GenReacPowerV   31   //发电V相无功功率（Phase reactive power V），有符号数，需要 D/10 处理，0-10000
#define CommData_GenReacPowerW   32   //发电W相无功功率（Phase reactive power W），有符号数，需要 D/10 处理，0-10000
#define CommData_GenPF1          33   //发电U相功率因数（Phase power factor U），有符号数，需要 D/100 处理，0-1
#define CommData_GenPF2          34   //发电V相功率因数（Phase power factor V），有符号数，需要 D/100 处理，0-1
#define CommData_GenPF3          35   //发电W相功率因数（Phase power factor W），有符号数，需要 D/100 处理，0-1
#define CommData_GensIU          36   //发电机U相电流（Phase current U），无符号数，需要 D/10 处理，0-1000
#define CommData_GensIV          37   //发电机V相电流（Phase current V），无符号数，需要 D/10 处理，0-1000
#define CommData_GensIW          38   //发电机W相电流（Phase current W），无符号数，需要 D/10 处理，0-1000
#define CommData_PConfig         39   //比例P数值（Config PID P），无符号数，需要 D/100 处理，范围：0-2
#define CommData_IConfig         40   //积分I数值（Config PID I），无符号数，需要 D/100 处理，范围：0-2
#define CommData_DConfig         41   //微分D数值（Config PID D），无符号数，需要 D/100 处理，范围：0-2
#define CommData_ACActivePower   42   //发电机总有功消耗（Total Energy kWh），有符号数，需要 D/1000 处理，-20000-20000
#define CommData_ACReactivePower 43   //发电机总无功消耗（Total Energy kVARh），有符号数，需要 D/1000 处理，-20000-20000
#define CommData_ACApparentPower 44   //发电机总视在消耗（Total Energy kVAh），有符号数，需要 D/1000 处理，-20000-20000
#define CommData_Exit            254  //退出
#define CommData_Alarm           255  //告警退出

#define CommData_TotalNum        (256)
#define CommData_PrintOnceNum    8    //一次最多能打印八条语句
COMMUNI_PRINT_EXT float CommData_PrintTotalQueue[CommData_TotalNum];
COMMUNI_PRINT_EXT uint8_t CommData_PrintCurrentQueue[CommData_PrintOnceNum];
COMMUNI_PRINT_EXT uint8_t CommPrintDataNum;  //上位机是否准备接收打印数据

#define CommPrintFrameMinLen     2
COMMUNI_PRINT_EXT uint8_t CommPrintFrameCurrentIndex;
COMMUNI_PRINT_EXT float CommPrintBuffer[CommData_PrintOnceNum*CommPrintFrameMinLen];


uint8_t App_StartPrint(void);
void USBDateSendCOMM_handling(uint8_t *Point,uint16_t DataNumber);
void CommPreparePrintData(void);


#ifdef __cplusplus
}
#endif


#endif   /*  __APP_COMMUNI_H__  */

/******************* (C) COPYRIGHT 2010 Feirui *****END OF FILE****/